Various workflow execution services exist for conducting bioinformatics analyses. Often, the workflow execution service is in a cloud-based environment, and provides a central hub for teams to store, analyze, and jointly interpret their bioinformatic data. The service may co-locate analysis pipelines alongside the largest genomic datasets to optimize processing. It may allocate storage and compute resources on demand, to meet the needs of ever-growing analyses. Further, the service may include a Graphical User Interface (GUI) that allows a user to create projects, run tasks, upload and manage project members, and so on. Additionally, the service may include an Application Programming Interface (API) that allows for these procedures to be carried out programmatically with additional logic, and a Command Line Interface (CLI) that allows for interactive control. Typically, end users may use only a single interface for performing the bulk of their analyses.
An API allows for end users to design and configure complex, multi-stage, or large batch analyses without using the GUI. In most workflow execution services, any action that can be taken using the GUI can be executed using the API, but the API allows for additional user-generated logic. Typically, a user interacts with the API using an API client (e.g., Postman), a programming language (e.g., Python), or via the terminal of their computer by using a command line program (e.g., cURL). API commands can be chained together to form an API script, allowing for the automation and integration of various service features. For example, an API script can include steps directed towards data upload, project management, metadata capture, quality control (QC) checks, execution of tools and workflows, and handling of the resulting data. In this way, the API offers many advantages over the GUI via programmatic access and automation, allowing for the creation of complex processes and workflows that would be not be practicable or cost efficient to implement as a GUI feature.
Though the API has many advantages over other modes of interaction, it lacks several benefits conferred using the GUI. For example, The API may not be accessible to those lacking programming expertise. Further, API scripts are typically executed by external client computers which interact with the service over a network. The client computer typically lacks the persistence and stability of the service, which may be subject to extensive quality testing and validation and include multiple levels of redundancy. The client machine often has no logs (and thus is hard to troubleshoot), may inadvertently reboot, and is subject to user error or misuse. Additionally, as the API includes features not present in the GUI, those interacting with the service only with its GUI are unable to take advantage of the advanced features. Accordingly, there is a need for improvements in the interface to and control of workflow execution services.